package com.bjut.vendormgrsys.service;

import com.bjut.vendormgrsys.model.domain.TokenPO;
import com.bjut.vendormgrsys.support.bo.UserBO;
import com.bjut.vendormgrsys.web.dto.user.Body;
import com.bjut.vendormgrsys.web.dto.RoleInfo;
import com.bjut.vendormgrsys.web.dto.Status;
import com.bjut.vendormgrsys.web.dto.user.UserInfo;
import com.bjut.vendormgrsys.web.dto.user.UserScoreInfo;
import com.bjut.vendormgrsys.web.dto.user.UserSearch;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

public interface UserService extends UserDetailsService {
    void insertTokenPO(TokenPO tokenPO);

    void validUserInfo(UserInfo userInfo);

    void saveUserPO(UserInfo userInfo);

    TokenPO getTokenPOByAccount(String account);

    TokenPO getTokenPOById(String id);

    void deleteTokenPOById(String id);

    UserInfo getUserInfoByUserBO(UserBO userBO);

    long findAll(final UserSearch body, List<UserInfo> list);

    List<RoleInfo> findAllRole();

    UserInfo getUserInfoByAccount(String account);

    UserInfo getUserInfoById(String id);

    List<Status> findAllStatus(String role);

    void changePassword(String userId, String tokenId, String newPasswrod, String encodePasswd);

    void changeStatus(List<Body> body);

    void changeAuditStatus(List<Body> body, String loginUrl);
}
